package com.dhcc.bpm.modules.api.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import org.springblade.core.mp.base.Excel;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;

import java.util.Date;

/**
 * @ClassName BaseProduct
 * @Description 基础产品表实体类
 * @Author daina
 * @Date 2020/2/25 15:22
 * @Version V1.0
 * @Copyright: 2020 东华软件 . All rights reserved.
 */
@Data
@TableName("opc_base_product")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "BaseProduct对象", description = "基础产品表")
public class BaseProduct extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	* 产品名称
	*/
		@ApiModelProperty(value = "产品名称")
		@Excel(name = "产品名称")
		private String productName;
	/**
	 * 英文名称
	 */
	@ApiModelProperty(value = "英文名称")
	@Excel(name = "英文名称")
	private String productEname;
	/**
	* 产品编号
	*/
		@ApiModelProperty(value = "产品编号")
		@Excel(name = "产品编号")
		private String productCode;
	/**
	* 产品编码
	*/
		@ApiModelProperty(value = "产品编码")
//		@Excel(name = "产品编码")
		private String productNum;
	/**
	* 产品版本
	*/
		@ApiModelProperty(value = "产品版本")
//		@Excel(name = "产品版本")
		private String productVersion;
	/**
	* 权限等级
	*/
		@ApiModelProperty(value = "权限等级")
		@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
//		@Excel(name = "开放等级")
		private Integer privilegeLevel;
	/**
	 * 报文类型
	 */
	@ApiModelProperty(value = "报文类型")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private Integer msgCode;
	/**
	* 父ID
	*/
		@ApiModelProperty(value = "父ID")
		@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
//		@Excel(name = "父ID")
		private Long pid;
	/**
	* 产品发布时间
	*/
		@ApiModelProperty(value = "产品发布时间")
//		@Excel(name = "产品发布时间")
		private Date releaseTime;
	/**
	* 所属系统
	*/
		@ApiModelProperty(value = "所属系统")
		@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
		@Excel(name = "所属系统")
		private Long opcSysId;
	/**
	* 描述
	*/
		@ApiModelProperty(value = "描述")
		//@TableField(value = "`describe`")
		@Excel(name = "描述")
		private String describe;
	/**
	 * 启停状态
	 */
	@ApiModelProperty(value = "启停状态")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
//	@Excel(name = "启停状态")
	private int productStatus;

	/**
	 * 是否推荐
	 */
	@ApiModelProperty(value = "是否推荐")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
//	@Excel(name = "是否推荐")
	private int isRecommend;
	/**
	 * 是否收费
	 */
	@ApiModelProperty(value = "是否收费")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
//	@Excel(name = "是否收费")
	private int isCost;
	/**
	 * 业务主键
	 */
	@ApiModelProperty(value = "业务主键")
//	@Excel(name = "业务主键")
	private String busPrimarykey;
	/**
	 * 路径
	 */
	@ApiModelProperty(value = "路径")
	@Excel(name = "路径")
	private String url;

	/**
	 * 是否作为路径
	 */
	@ApiModelProperty(value = "是否作为路径")
	@Excel(name = "是否作为路径")
	private int isUrl;

	/**
	 * 文档文件
	 */
	@ApiModelProperty(value = "文档文件")
	@Excel(name = "文件路径")
	private String filePath;

	/**
	 * 递增数
	 */
	@ApiModelProperty(value = "递增数")
	@Excel(name = "递增数")
	private int upNum;
	/**
	 * 导出数据标识
	 */
	@ApiModelProperty(value = "导出数据标识")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private String expSeq;
	/**
	 * 类别 1内部  2外部 base_type
	 */
	@ApiModelProperty(value = "类别")
	@Excel(name = "类别")
	private Integer baseType;

	/**
	 * 后端服务统一路径
	 */
	@JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
	@Excel(name = "后端服务统一路径")
	private String servicePath;
	/**
	 * 后端服务流量
	 */
	@JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
	@Excel(name = "后端服务流量")
	private String serviceFlow;

	@ApiModelProperty(value = "json格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "json格式报文配置文件附件")
	private Long jsonMsgConfig;

	@ApiModelProperty(value = "sep格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "sep格式报文配置文件附件")
	private Long sepMsgConfig;

	@ApiModelProperty(value = "fixed格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "fixed格式报文配置文件附件")
	private Long fixedMsgConfig;

	@ApiModelProperty(value = "kv格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "kv格式报文配置文件附件")
	private Long kvMsgConfig;

	@ApiModelProperty(value = "xml格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "xml格式报文配置文件附件")
	private Long xmlMsgConfig;

	@ApiModelProperty(value = "efet格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "efet格式报文配置文件附件")
	private Long efetMsgConfig;


	@Excel(name = "WSDL文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	private Long wsdlFileId;//WSDL_FILE_ID   -1表示删除

	@Excel(name = "交易码json串")
	private String txCodeList;//TX_CODE_LIST    json串

	@Excel(name = "服务密码")
	private String authCode;

	@Excel(name = "授权码MD5值")
	private String authCodeMd5;

	@Excel(name = "是否开启熔断(1:是，2:否)")
	private String hystrixEnable;

	@Excel(name = "熔断配置")
	private String hystrixMsg;

	/**
	 * 每秒处理请求数量
	 */
	@JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
	@Excel(name = "每秒处理请求数量")
	private String replenishRate;

	/**
	 * 令牌桶容量
	 */
	@JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
	@Excel(name = "令牌桶容量")
	private String burstCapacity;
}
